# encoding: utf-8
class SessionsController < ApplicationController

skip_before_filter :login_required#, :tiene_perfil?,:perfil_autorizado

  # render new.rhtml
  def new

  end

  def create
    logout_keeping_session!
    unless params[:usuario].empty? || params[:password].empty?
          password_authentication(params[:usuario], params[:password])
    else
      note_failed_signin "Usuario o contraseña no deben estar vacios"
    end
  end

  def destroy

    logout_killing_session!
    kill_remember_cookie!
    destroy_perfil
    destroy_empleado
    redirect_back_or_default(root_url, :notice => "Sesión Terminada")
  end

  protected
  # Track failed login attempts


  def note_failed_signin(message = "Imposible iniciar sesión con el usuario '#{params[:login]}'" )
    flash.now[:notice] = message
    logger.warn "Falló el inicio de sesión para el usuario '#{params[:login]}' desde #{request.remote_ip} el #{Time.now.utc}"
    @login       = params[:login]
    @remember_me = params[:remember_me]

    mensaje = "Nombre de usuario y contraseña no concuerdan"
    respond_to do |format|
      format.html do
        render :action => 'new'
      end
      format.xml do
        render :xml => mensaje
      end
      format.json do
        render :json => mensaje
      end
    end
  end

  def successful_login
    #new_cookie_flag = (params[:remember_me] == "1")
    #handle_remember_cookie! new_cookie_flag

    mensaje = "Sesión Iniciada"
    respond_to do |format|
      format.html do
        redirect_back_or_default(inicio_url, :notice => mensaje)
      end
      format.xml do
        render :xml => mensaje
      end
      format.json do
        render :json => mensaje
      end
    end
  end
  
  def password_authentication(login, password)
    @usuario = Usuario.find_by_ClaveUsuario_and_Password(login,password)
      

      if @usuario

        self.current_usuario = @usuario
#        self.current_empleado = Empleado.find_by_NoEmpleado(@usuario.NoEmpleado)
#        if @current_usuario.perfiles.count == 1
#          self.current_perfil= @current_usuario.perfiles.first
          redirect_to(inicio_url)
#        else
#          redirect_to(perfiles_usuario_url)
#        end


        #successful_login
      else
        note_failed_signin "Usuario o contraseña no coinciden en el directorio."
      end  
  end
end
